草庐IT

Java Hashmap 尾部遍历

全部标签

java - 遍历二叉搜索树以找到所有叶子

我对树很陌生,我正在尝试创建一种“叶迭代器”。我认为它应该将所有没有.left和.right值的节点放到堆栈上,但我不确定它是如何或什至是做正确的事。我曾尝试搜索它,但我遇到的每个示例都从转到最左边的叶子开始,然后转到p=node.parent,并且我避免链接到节点的父节点。我不明白我怎么能重复地从根部开始并穿过藤蔓而不一遍又一遍地访问相同的藤蔓。编辑我看到有人建议使用递归方法来解决这个问题,我现在同意了。但是一段时间以来,我一直在努力寻找迭代器类方式的解决方案,我仍然想知道这是否可行,以及如何实现! 最佳答案 使用递归:publi

java - 如何遍历对象数组列表

所以现在我有一个包含一段代码的程序,看起来像这样......Criteriacrit=session.createCriteria(Product.class);ProjectionListprojList=Projections.projectionList();projList.add(Projections.max("price"));projList.add(Projections.min("price"));projList.add(Projections.countDistinct("description"));crit.setProjection(projList);L

java数组循环遍历

我有一个包含12345个值的数组。arraya=[1,2,3,4,5]现在我想以循环方式遍历它。就像我想打印23451或34512或51234等等。有什么算法吗?编辑:我想以循环方式打印所有组合。我不想在初始阶段说明起点。 最佳答案 intstart=...for(inti=0;i(如果要从start开始向后迭代数组,将数组中的start+i改为start-i下标表达式。)我应该注意到,就执行速度而言,这可能不是表达循环的最有效方式。但是,差异很小,很可能不相关。更相关的一点是,以这种方式使用%是否会提供更易读的代码。我认为确实如此

java - 使用 Java 8 Optional 实现安全的 Map 遍历

我有Map>myMap在我的Java8类(class)中。我需要导航到像myMap['keyA']['keyB']这样的叶字符串,返回null如果'keyA'或'keyB'在相关map中不存在。在groovy中我会使用myMap?.keyA?.keyB并完成它。我了解Java8的Optional将类似的行为带入java。有没有办法使用这种新行为来简洁地模仿groovy功能​​?如果不是,是否有另一种简洁的方法可以在Java8中实现这种行为,或者我是否仍然坚持使用复杂的过程代码? 最佳答案 StringvalueOrNull=Opti

java - 使用对泛型对象的非类型化引用时,遍历成员类型化集合失败

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Genericsinforeachloopproblemifinstancedoesnothavegenerictypeassigned有人能解释一下为什么编译器(Java1.6)不接受iterate1()吗?我不明白为什么iterate2()和iterate3()更好。importjava.util.Collection;importjava.util.HashSet;publicclassTest{publicCollectiongetCollection(){returnnewHashSet();}pu

java - 遍历名称以 "get"开头的所有方法 - 比较对象

是否有可能以某种方式遍历对象的每个方法,名称以“get”开头?我想比较两个非常复杂的自定义对象,它们的字段由基于其他自定义对象的数据结构组成。我想做的是获取每个get方法的结果的哈希码,并比较它们是否对每个字段都相等。如果不是很明白还请见谅,有问题请追问。感谢您的帮助和建议我想到了这样的事情:for(methodm:gettersOfMyClass){booleansame=object1.m.hashCode()==object2.m.hashCode()} 最佳答案 是的,有可能,而且其实很简单:publicstaticvoid

java - 遍历一个计数字符串值

这个问题在这里已经有了答案:Howtoformatnumberstosamenumberofdigits,0-padded?(3个答案)关闭9年前。我必须显示v10000到v10500范围内的所有服务器名称。下面是我试过的代码,但有时它显示为零。Stringtemplate="v10";intcount=0;while(count但是当我向老板展示这个解决方案时,他只是笑着说:Icandothisbetter.如何更改我的代码以使其正常工作?我是Java新手。

java - 按顺序遍历对象队列

我创建了一个包含对象的队列,我想按照它们在队列中的放置顺序遍历这些对象(第一个对象放在队列中,第二个对象放在队列中,第三个对象...)我在网上看到了一种方法,但我不确定这是否能保证以正确的顺序访问队列中的对象?for(MyObjectanObject:queue){//dosometingtoanObject...感谢您的帮助。 最佳答案 将您的队列实现为链表。然后您可以按插入顺序遍历对象。您必须声明要插入到队列中的对象类型,这样您就不会收到任何错误。您可以将其保留为对象并将其指定为对象队列,然后您上面的代码就可以工作了。见下文。Q

java - Freemarker:如何使用枚举作为键来遍历 map

以下代码不起作用,因为Freemarker似乎将[]中的表达式的值转换为String,然后将其用作键,这不是实际预期的。准备模板模型:MapmyMap;myMap.put(MyEnum.FOO,"Foo");myMap.put(MyEnum.BAR,"Bar");templateModel.put("myMap",myMap);我的.ftl:${key}=${value}在Freemarkerdocumentation它描述了如何访问枚举本身,但我没有找到任何关于如何使用枚举作为键从哈希中获取值的信息。谢谢。 最佳答案 释义Free

java - Java中如何遍历vector只存储指定的类?

我有一个用例,我需要迭代Vector元素并将结果存储在say数组中,前提是该实例属于类method有什么容易做到的吗?目前我是这样做的:Iteratoritr=vec.iterator();Iteratorelement=vec.iterator();while(itr.hasNext()){booleanmethod=itr.next()instanceofMethod;if(method)System.out.println("\t"+((Method)(element.next())).name);elseelement.next();}但我认为会有比这更好的方法。